package dao.mysql;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import beans.Ambiente;
import conexion.BDConexion;
import dao.interfaces.AmbienteDAO;

public class MySqlAmbienteDAO implements AmbienteDAO {

	@Override
	public List<Ambiente> ListarAmbiente(String codigo, String tipo, int estado) {
		List<Ambiente> lista = new ArrayList<Ambiente>();
		Connection cn = null;
		PreparedStatement pst = null;
		ResultSet rs = null;
		try {
			
			codigo = codigo.isEmpty()?null:codigo;
			tipo = tipo.isEmpty()?null:tipo;
			
			cn = new BDConexion().obtenerConexion();
			String sql = "SELECT * FROM bd_inictel_dcc.ambiente WHERE cod_amb = ifnull(?,cod_amb)  AND tipo_amb = ifnull(?,tipo_amb) AND estado_amb = ifnull(?,estado_amb);";
			pst = cn.prepareStatement(sql);
			pst.setString(1, codigo);
			pst.setString(2, tipo);
			pst.setInt(3, estado);
			rs = pst.executeQuery();
			while (rs.next()) {
				Ambiente d = new Ambiente(rs.getString(1),rs.getInt(2),rs.getInt(3),rs.getInt(4));
				lista.add(d);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				cn.close();
				pst.close();
				rs.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		return lista;
	}

	@Override
	public List<Ambiente> ListarAmbienteTodo() {
		List<Ambiente> lista = new ArrayList<Ambiente>();
		Connection cn = null;
		PreparedStatement pst = null;
		ResultSet rs = null;
		try {
			
			cn = new BDConexion().obtenerConexion();
			String sql = "SELECT * FROM bd_inictel_dcc.ambiente where estado_amb = 3;";
			pst = cn.prepareStatement(sql);
			rs = pst.executeQuery();
			while (rs.next()) {
				Ambiente d = new Ambiente(rs.getString(1),rs.getInt(2),rs.getInt(3),rs.getInt(4));
				lista.add(d);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				cn.close();
				pst.close();
				rs.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		return lista;
	}

}
